package com.jincheng.system.service;

import com.jincheng.system.domain.UserTribe;
import com.jincheng.system.domain.dto.UserTribeDetailDTO;
import com.jincheng.system.domain.dto.UserTribeScreenDTO;

import java.util.List;

public interface IUserTribeService {

    /**
     * 新增用户部落
     *
     * @param userTribe 用户部落
     */
    int insertUserTribe(UserTribe userTribe);

    /**
     * 查询用户部落列表
     *
     * @param userTribe 用户部落
     * @return 用户部落集合
     */
    List<UserTribe> selectUserTribeList(UserTribe userTribe);

    /**
     * 根据报名信息id查询用户部落
     *
     * @param userTribeId 用户部落id
     * @return 用户部落
     */
    UserTribe selectUserTribeById(Long userTribeId);

    /**
     * 查询用户部落详情列表
     *
     * @param tribeID 部落id
     * @return 用户部落详情集合
     */
    UserTribe selectUserTribeByUserIdTribeId(Long tribeID);

    /**
     * 查询用户部落详情列表
     *
     * @param userTribeScreenDTO 用户部落
     * @return 用户部落详情集合
     */
    List<UserTribeDetailDTO> selectUserTribeDetailList(UserTribeScreenDTO userTribeScreenDTO);

    /**
     * 更新用户部落
     *
     * @param userTribe 用户部落
     */
    int updateUserTribe(UserTribe userTribe);

    /**
     * 根据id列表删除用户部落信息
     *
     * @param userTribeIds id列表
     * @return 受影响行
     */
    int deleteUserTribeByIds(Long[] userTribeIds);

    /**
     * 更新用户报名部落的状态
     *
     * @param userTribeDetailDTO 用户部落
     */
    int changeStatus(UserTribeDetailDTO userTribeDetailDTO);
}
